Methods and systems for configuring mobile devices using sensors

ABSTRACT

Methods and systems enable selection of a theme for implementation on a computing device based on sensor data. The computing device can include a variety of sensors including sensors capable of sensing ambient temperature, light, and sound, as well as geographic position, for example. Data collected by a sensor is used to select a theme correlated to the sensed condition. Data from sensors can also be used to generate customized advertisements that can be displayed on the computing device.

FIELD OF THE INVENTION

The present invention relates generally to mobile computing systems, andmore particularly to configuring the layout and functionality of mobiledevices using sensors.

BACKGROUND

The usage of mobile electronic devices (mobile devices), such ascellular telephones, is ever increasing due to their portability,connectivity and ever increasing computing power. As mobile devicesbecome an everyday accessory, users seek to customize the layout andfunctionality of their mobile devices to complement their personalitiesand environment. However, traditional mobile devices do not provide acomplete user experience. Recently, mobile devices have been releasedfeaturing different user interfaces. Further innovations are expected toprovide more complete user experience, better user-interfaces andsupport more useful applications.

SUMMARY

The various embodiments provide methods and systems for configuring atheme implemented on computing devices using data collected by sensors.Themes may be stored locally on the computing device or externally onservers with which the computing device can communicate. The computingdevice can then select an appropriate theme based on the data collectedby a sensor and apply it to the computing device.

The various embodiments provide methods and systems for presentingadvertisements on a computing device based on data collected by sensors.The collected sensor data and a request for advertisement may becommunicated to an external server which may include an advertisementdatabase. Based on the sensor and other data received, advertisement canbe targeted to and customized for a particular user and sent to theuser's computing device.

The various embodiments further provide methods and systems forconserving energy using data generated by sensors. For example, thebacklight of a computing device may be adjusted based on the datacollected by an ambient light sensor. If the ambient light is low, thecomputing device can conserve energy by reducing the intensity of itsbacklight. If the ambient light is intense, the computing device canincrease the intensity of its backlight to ensure visibility of thedisplay contents.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and constitutepart of this specification, illustrate exemplary embodiments of theinvention, and, together with the general description given above andthe detailed description given below, serve to explain features of theinvention.

FIG. 1 is a component block diagram of a typical cell phone usable withthe various embodiments.

FIG. 2 is a hardware/software architecture diagram of an embodiment.

FIG. 3 is a process flow diagram of an embodiment.

FIG. 4 is a message flow diagram associated with the process stepsillustrated in FIG. 3.

FIG. 5 is an example parameter data table suitable for storing a varietyof theme data relating to data collected by sensors.

FIG. 6 is a network diagram of an embodiment.

FIG. 7 is a message structure diagram for an exemplary embodiment.

FIG. 8 is an illustration of an embodiment presenting theme changes on acomputing device based on temperature.

FIG. 9 is an illustration of an embodiment presenting theme changes on amobile device based on temperature.

FIG. 10 is an illustration of another embodiment presenting themechanges on a mobile device based on temperature.

FIG. 11 is a network diagram of an embodiment suitable for sendingadvertisement to a mobile device based on data collected by a sensor.

FIG. 12 is an illustration of an embodiment presenting sendingadvertisement to a mobile device based on data collected by atemperature sensor.

FIGS. 13 and 14 are top view and cross-sectional view, respectively, ofa keypad employing display keys.

FIGS. 15 and 16 are illustrations of a cell phone including atouchscreen user-interface.

FIG. 17 is an illustration of a cell phone including display positionedabove keys.

FIG. 18 is a hardware/software architecture diagram of an embodimentincluding a light sensor.

FIG. 19 is a process flow diagram of an embodiment method forcontrolling backlight intensity based upon a light sensor.

FIG. 20 is a process flow diagram of an embodiment method forcontrolling ring tone volume or audio themes based upon an ambient noisesensor.

FIG. 21 is a component block diagram of a typical server usable with thevarious embodiments.

DETAILED DESCRIPTION

The various embodiments will be described in detail with reference tothe accompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.References made to particular examples and implementations are forillustrative purposes, and are not intended to limit the scope of theinvention or the claims.

In this description, the terms “exemplary” is used herein to mean“serving as an example, instance, or illustration.” Any implementationdescribed herein as “exemplary” is not necessarily to be construed aspreferred or advantageous over other implementations.

As used herein, the term “computing device” refers to any programmablecomputing device including a display and a keyboard or keypad. Indescriptions of various embodiments, reference is made to “mobiledevices” which are but one type of computing device that implement thevarious embodiments. As used herein, the terms “mobile handsets” and“mobile devices” are used interchangeably and refer to any one ofvarious cellular telephones, personal data assistants (PDA's), palm-topcomputers, laptop computers (including those with wireless modems),wireless electronic mail receivers (e.g., the Blackberry® and Treo®devices), cellular telephones, and multimedia Internet enabled cellulartelephones (e.g., the iPhone®), and similar computing devices.

As used herein, the term “keypad” refers to any of a variety of userinterfaces in which a user presses a button or key in order tocommunicate to a mobile device that a function associated with the keyshould be implemented. Examples of keypads encompassed within thefollowing description include the number keypads of conventionalcellular telephones, miniature keyboards as is implemented on a varietyof mobile devices, external keypads and keyboards which may beelectronically coupled to a mobile device (e.g., via a wired or wirelessdata link), computer keyboards, and musical keyboards which may becoupled to a personal computer, mobile device or other computing device.For ease of description, the figures depict and the descriptions referto the keypad of a typical cellular telephone. However, thesedescriptions and illustrations are for example only, and are notintended to limit the scope of the description or the claims to aparticular keypad configuration.

Modern cellular telephones and other mobile devices make use of avariety of different keypads for receiving user inputs. Some modernmobile devices include two or more keypads integrated within the device.For example, some cellular telephone designs include a number keypad foruse in placing telephone calls, and a miniature keyboard which can beactivated by sliding, opening or rotating a portion of the telephone toexpose the keyboard. As another example, some cellular telephones mayinclude a fixed keypad and a touchscreen user-interface which may beoperated as a passive display or a touch sensitive interface dependingupon user selections and application software.

The various embodiments enable a mobile device to employ sensors forcollecting information from users' environment and change the graphics,layout and functionality of the mobile device based on data collected bythe sensor. Example sensors that may be included within a mobile deviceinclude temperature, location (e.g., a Global Positioning System (GPS)receiver), vibration (e.g., provided by an accelerometer), light andsound sensors. The various embodiments are useful in, for example,detecting the temperature and changing the theme of the mobile devicebased on the temperature recordings. By changing the theme and theuser-interface, mobile devices can provide the users with aninteresting, versatile and complete user experience. The variousembodiments may also be useful in detecting data using a sensor andtransmitting the data to a third party for advertisement purposes. Theuser can then receive targeted and customized advertisements based onthe information collected by the sensors and transmitted to the thirdparties. The various embodiments also enable a mobile device to use theinformation collected by sensors to conserve energy. For example, amobile device can use light sensors to adjust the intensity of themobile device's backlight to extend the charge or the life of a battery.As a further example, a mobile device can use an ambient noise sensor(e.g., a microphone) to adjust the volume setting of ring tones or theselection of audio themes in order to ensure rings or other audio alertscan be heard or are not inappropriately too loud for the ambient noisecondition.

FIG. 1 illustrates a system block diagram of a mobile device 10 for usein the various embodiments. As shown in FIG. 1, a mobile device 10 mayinclude a microprocessor 12, a memory 14, an antenna 16, a display 18,an alphanumeric keypad 20, a 4-way menu selector 22, a speaker 24, amicrophone 26, a vocoder 28, a wireless network transceiver 30, andvarious interconnections. In addition, mobile device 10 may contain anambient noise sensor 34 which may include the a microphone or may beconnected to the microphone 26 to detect ambient noise levels when atelephone or sound recording application is not activated. Mobile device10 may also include a camera 36 which in addition to taking pictures hasa CCD camera circuit which can be configured to be capable of detectingambient light levels when a camera application is not activate. Themobile device may also contain an ambient temperature sensor 38 and anaccelerometer 40 which may detect the relative acceleration of themobile device 10. The mobile device 10 may also have a GPS receiver unit43 which is capable of detecting the precise global position of themobile device 10. Other sensors may include a breathalyzer 44 which iscapable of detecting a blood alcohol content (BAC) based on the expelledbreath of a user. Additional biometric sensors such as a blood pressuremonitor, pulse rate, body temperature, etc. can easily be incorporated.

The mobile device 10 may further include a short range wirelesstransceiver 31, such as a BlueTooth® or WiFi transceiver, may beincorporated to communicate with external devices which may include anumber of external sensors. Each of the mobile device sensors 34-46 maybe connected to the processor 12, which is in turn connected to aninternal memory unit 14. In this manner, the processor 12 may collectparameter data from the various sensors 34-46 and store the data in thememory unit 14 or transmit the data via an external network via thewireless network transceiver 32. It should be noted that while mobiledevice 10 is depicted in FIG. 1 as a mobile handset or cell phone, thesystem blocks may be implemented in any computing device with wirelesscommunication capability. Thus, FIG. 1 is not intended to be limited toor exclude any particular type of computing device.

FIG. 2 illustrates a software/hardware architecture diagram that may beimplemented in the various embodiments for changing the theme of amobile device 10 using data collected by a sensor. In this examplearchitecture, a sensor 200 makes measurements of the environment of themobile device and converts the measurements into digital informationwhich the processor 12 can understand. This data is communicated to thesystem software 202 such as an Operating System operating on the mobiledevice processor 12. When the various embodiments are implemented withinthe system software layer 202 the system software can select a themebased on the data received from the sensor 200 and apply the theme tothe mobile device display 18 and the keypad 20. In addition to changingthe theme on the display and the keypad, the mobile device 10 can changethe theme throughout its menu options to provide the user with acomplete and uniform user experience. A mobile device 10 may have anumber of theme files stored in its memory 14 from which an appropriatetheme may be selected, or may access and download additional themes fromexternal theme databases stored on, for example, a server accessible viaa network. Additional themes may be loaded onto the mobile device 10 bya theme application, such as theme download application 204. The themedownload application 204 may interface with a runtime environment 206,such as the Binary Runtime Environment for Wireless BREW® in order tofacilitate communications with system software 202. When a new theme isstored in the mobile device memory 14, it may be implemented immediatelyor become a part of the stored theme files available for future use.When required, the system software 202 may access the stored theme filesfor implementing one on the display 18 and keypad 20 of the mobiledevice 10. If the mobile device 10 downloads a new theme and immediatelyapplies the theme to the display 18 and keypad 20, the theme may not besaved in memory, so that the theme will be deleted the next time thetheme is replaced, such as based on new sensor 200 data. Deleting unusedthemes saves memory 14 space which can be used for other purposes.

To implement a theme which changes displays and functionality presentedon the keypad 20, the mobile device 10 may employ a keypad protocollayer within the system software 202 to facilitate the embodimentmethods and applications. Such a keypad protocol is described in U.S.patent application Ser. No. 12/139,823 entitled “Standardized Method andSystems for Interfacing with Configurable Keypads”, filed on Jun. 16,2008, the entire contents of which are hereby incorporated by reference.The keypad protocol layer serves as an interface between applicationsoftware and keypad drivers that enable application software to definekeypad configuration requirements to the operating system and receiveconfiguration instructions in standard formats. By doing so, the processof configuring a keypad 20 by, for example, changing the theme displayedon the keys 402 of the keypad 20 can be performed by the keypadprotocol, removing the need to include this processing withinapplication software. The description with reference to FIGS. 2 through18 describes embodiments implemented on mobile devices 10 which mayinclude such a keypad protocol layer within their system software.

FIG. 3 is a process flow diagram of an embodiment illustrating examplesteps that may be used to change the theme implemented on a mobiledevice 10 based on sensor data. Once the mobile device 10 is turned on,step 500, the processor 12 may begin receiving data collected by one ormore sensors 200, step 502. As mentioned above, a sensor 200 makesmeasurements of the environment and converts the measurements intodigital data which the processor 12 can understand. In an exemplaryembodiment the sensor 200 may be a temperature sensor 38, such as athermistor or thermocouple in conjunction with circuitry to convertmeasured resistance or voltage into digital data related to temperatureas are well known in the art. Such a temperature sensor 200 may beconfigured within the mobile device 20 so that it is capable ofmeasuring the ambient temperature and providing the resulting data tothe mobile device processor 12. Data from the sensor 200 is received bythe processor 12 which may be configured by software, such as systemsoftware 202, to use the sensor data to select a theme forimplementation. The processor 12 may have access to a list or index oftheme files stored in memory from which a theme may be selected based ondata received from the sensor 200, step 503. The theme list is describedin more detail below with reference to FIG. 5. The processor 12 may thenscan the theme list to select an appropriate theme based on theinformation received from the sensor 200, test 504. If the selectedtheme is stored in the mobile device's local memory 14 (i.e., test504=“Yes”), the selected theme file is accessed and the theme elements(e.g., display images, ring tones, and keypad displays if appropriate)ARE applied to change the theme of the mobile device 10, step 510. Ifthe selected theme is not stored locally in the mobile device's memory12 (i.e., test 504=“No”), the selected theme may be downloaded from anexternal theme database such as by using a theme download application206, step 508, before being applied to the mobile device 10, step 510.The process steps of receiving sensor data, selecting a theme andapplying the theme to the mobile device 10, steps 502-510, may berepeated periodically to ensure that the theme remains appropriate fornew data collected by the sensor 200, returning to step 502.

The example process steps illustrated in FIG. 3 may be implemented in anumber of electronic messages passed among the different hardware andsoftware layers in the mobile device 10, such as illustrated in FIG. 4.Periodically or upon poling sensors the system software 202 receivesdata from the sensor 200, message 300. As described above, the systemsoftware 202 may cause the processor 12 to use the sensor data to selecta theme that is related to or appropriate in view of the collectedsensor 200 data. If the selected theme is stored in memory 14, thesystem software 202 may access the selected theme files, message 305.Using the theme files, the system software 202 can formulateinstructions to apply theme elements to the mobile device's keypad 20,message 306, and display 18, message 308. The theme may also be appliedto the mobile device's 10 user menus to provide a more complete userexperience. If the selected theme is not available in the mobile devicememory 14, additional themes may be downloaded and stored in the mobiledevice memory 14 using a theme download application 204. To do this, theselected theme identification information may be provided by systemsoftware 202 to the theme download application 204, message 301. Thetheme download application 204 may then access a remote server via awireless data network (e.g., a cellular telephone data network) torequest and receive the theme files using well known wireless networkand Internet protocols and application software. In doing so the themedownload application 204 will interface with the runtime environment 206and system software 202, as well other mobile device 10 resources;however, the messages involved in such processing are well known and aretherefore are not included in FIG. 4. Once theme files have beendownloaded or during downloading, the theme download application 204 mayinterfaces with the runtime environment 206, messages 302, to storetheme files in memory 14, messages 304. The processor 12 may thenreceive the new theme file from mobile device memory 14, message 305,and apply the new theme elements to the mobile device's keypad 20,message 306, and display 18, message 308.

The processor 12 may make use of a comprehensive theme list stored inmemory 14 to select a theme most appropriate to current data collectedby the sensor 200. The processor 12 uses the data collected by thesensor 200 to first select a theme from the theme list before scanninglocal memory for the theme files t and applying the theme elements tothe mobile device 10. If the selected theme is not available in thelocal theme database, the processor 12 may retrieve it by sending arequest to an external theme database stored on, for example, anexternal server. Such a theme list may be manually or automaticallyupdated as new themes are made available for the mobile device 10. Forexample, as new themes are stored in memory, the theme descriptorsdescribed below may be added to the theme list. Further, if a user hassubscribed to an external server maintaining a theme database, theexternal server may periodically send messages to the mobile device 10to update the theme list stored in memory to reflect all themesmaintained in the server's theme database.

FIG. 5 illustrates an example data structure of a theme list 550 thatmay be stored in memory 14 and accessed by the processor 12. FIG. 5illustrates a common table form of data structure comprised of a numberof data records 554-564 each of which includes a number data fields,which may be illustrated as columns 566-576. However, other datastructures may be used for storing the information illustrated in FIG.5. Each data record in the theme list 550 may include data fieldsstoring theme descriptor information useful in implementing the variousembodiments, such as a theme description 566, theme ID 568, sensor 200type 570, sensor criteria 572, associated theme elements 574 and thestorage location of theme files 576. The processor 12 can use this themelist 550 to identify which theme to use by scanning the list for recordscontaining the same sensor type in data field 570 and the sensor 200from which data was received, and then comparing the sensor criteriavalues in data filed 572 to the received sensor data. If the processordetermines that the sensor type(s) matches the sensor(s) 200 and thesensor data satisfies the sensor criteria, the processor can use thetheme storage location data in data field 576 to access the associatetheme files and apply the theme elements identified in data field 574.

To illustrate how the theme list 500 can be used to implement a themeconsider the example illustrated in data record (i.e., row) 554. Thisexample theme record includes data for a theme referred to as “BlueGlow” (identified in data field 566) which is based upon data receivedfrom the temperature sensor (identified in data field 570). This thememay be implemented on the mobile device when data from a temperaturesensor 38 indicates that the ambient temperature is below 50 F.° basedupon the theme sensor criteria in data field 572. This theme is storedin local memory 14 of the mobile device 10 and can be accessed at memorylocation XXXX without having to download it from an external server. Theprocessor 12 may alternatively use the theme ID, in this case “000001”as indicated in data field 568 to locate the theme within the mobiledevice memory 14. The processor is also informed that the theme will beapplied to the display and keypad backlight as indicated in data field574. By applying this theme to the display 18 and keypad 20, the colorof the backlight may change to blue as the user may feel is appropriateto reflect the cold surrounding environment.

Similarly, data records 556 and 558 of the theme list 550 identify otherthemes that are available in the memory 14 of the mobile device 10 thatshould be applied to the display 18 and keypad 20 based upon differenttemperature sensor criteria. As this example illustrates, users can usethe various embodiments to automatically implement a number of themes ontheir mobile device depending upon ambient conditions measured by asensor, such as a temperature sensor.

As a further illustration of the use of the theme list 550, data record560 includes a theme referred to as “Green Glow” which is based upongeographic position data received from a GPS receiver 43 (identified indata field 570). When data received from the GPS receiver 43 indicatesthat the mobile device is located geographic coordinates known to be aforest or a location with dense vegetation, the processor may selectthis theme to apply to a green backlight color to the display 18 andkeypad 20. Because this theme is not available on the local themedatabase (see data field 576), the processor can access a wireless datanetwork to access a remote server and request this theme such as byusing the address (e.g., a URL) information stored in data field 576.

In an embodiment, data collected by multiple sensors 200 may be used incombination to select a theme for the mobile device 10. For example,data records 562 and 564 include themes that may be selected based upondata collected by a temperature sensor 38 and an ambient light sensor36. Considering data record 562, for example, when the measuredtemperature is lower than 45 F.° and the ambient light is dim, theprocessor 12 may select the “Snow” theme to change the image and colorspresented on the display 18 and keypad 20 to a snow related image andcolor scheme. In contrast, if the ambient temperature is above 71 F.°and ambient light is bright, the processor 12 may select the “Sunshine”theme identified in data record 564 to change the image and colorspresented on the display 18 and keypad 20 to a sun related image andcolor scheme.

The theme list 550 may be automatically or manually populated andupdated to add, delete or upgrade the themes available to the mobiledevice 10. For example, using a menu application, users may be promptedto identify sensor criteria for activating themes stored in memory, withthe menu application using user responses to create, populate and/orupdate the theme list 550 as appropriate. As another example, users maysubscribe to a service which maintains a variety of themes available fordownload. As part of this service theme lists 550 may be periodicallycommunicated to subscriber mobile devices for storage in memory. Usersmay also have access to different theme lists based on their plancontracts with the carrier companies. For example, basic themes may beavailable with economical plans and more complex and more variety ofthemes may be available with more luxury plans. Thus, users may be ableto manually select from a list of alternative theme lists maintained bya service provider, with the selected theme list then automaticallydownloaded to their mobile device.

Users may manually activate or deactivate the theme list 550. Whendeactivated, the mobile device 10 will not change themes automatically.This may be desired when the users prefer to maintain a particular themeon their mobile devices 10. Users may also delete themes from the themelist 550. This may be useful when users do not enjoy a particular themeand prefer not to have it applied to their mobile device 10. Allowingusers to freely customize their preferences for automatic themeimplementation gives users more options for customizing andpersonalizing their mobile devices.

In an embodiment, FIG. 6 illustrates a diagram of a wireless networkthat may be used to download a theme from an external server 600. Theserver 600 may include a theme database from which the mobile device 10may download a selected theme. The server 600 may be maintained andupdated by the mobile device 10 carrier or a third party contractor.When a selected theme is not available on the local theme database of amobile device 10, the mobile device 10 may use the wireless network tosend a request message to the server 600 to download the selected theme.To request a theme file download, the mobile device processor 12 mayload a theme download application 204 to configure the processor toprocess messages to and from the server 600. The request message isreceived by a wireless access point 604 and then sent via a network 602,such as the Internet, to the server 600. The reception and transmissionof such request messages would employ well known wireless data networkand Internet protocols and technologies. The server 600 processes therequest message and sends the requested theme files to the mobile device10 through the network 602 and the wireless access point 604 using knownnetwork protocols and technologies. The theme download application 204may receive theme file download messages from server 600 and extract thetheme files from the messages, store the files in memory 14 and informsystem software 200 that the selected theme is available forimplementation. The processor 12, configured by system software, thenapplies the new downloaded theme elements to the mobile device's keypad20 and/or display 18 and changes ring tones and theme audio files asappropriate.

In an embodiment illustrated in FIG. 7, the request message 700 mayinclude a theme request message code or ID 700 a which identifies themessage as one for requesting a theme download. The request message 700may also include a mobile device code or ID 700 b which can identity thetype of mobile device 10 so the server 600 is able to look up technicalspecifications of the requesting mobile device 10. This would allow theserver 600 to transmit a theme download files in a format that iscompatible with the requesting mobile device 10. The request message 700may also include a theme ID 700 c which identifies the requested themewith an code or value that can be used to quickly locate the theme filesin a theme database. Using this request message 700 the server 600 canaccess the requested theme within a theme database and configure themefile download messages for transmission to the mobile device 10.

In an exemplary embodiment, a mobile device 10 may use a temperaturesensor 38 to select an appropriate theme. As illustrated in FIG. 8, amobile device processor 14 may be configured with software to changevarious aspects of its keypad 20 and display 18, such as adjusting thebacklight color, based on the measured ambient temperature. Thisembodiment is illustrated in FIG. 8 in the form of a temperature scale800 from 0 to 100 degrees Fahrenheit (F.°) and examples of themesimplemented on the mobile device 10 in response to measured ambienttemperature. This example illustrates that when the ambient temperatureis below 50 F.° the mobile device 10 may select and apply a Blue Glowtheme which changes the color of the display 18 and keypad 20 backlightsto blue to reflect the cool temperatures of the surroundings. Thisexample also illustrates that when the ambient temperature falls betweenabout 51 and 70 F.° the mobile device 10 may select and apply a YellowGlow theme which changes the color of the display 18 and keypad 20backlights of to yellow. This example further illustrates that when thetemperatures exceeds above 71 F.° the mobile device 10 may select toapply a Red Glow theme which changes the backlight color of the display18 and keypad 20 to red to reflect the hot surrounding temperatures.

In another exemplary embodiment illustrated in FIG. 9, data fromtemperature sensor 38 may be used to change the theme of a mobile device10 by showing images related to the surrounding temperatures. Thisembodiment is illustrated in FIG. 9 in the form of a temperature scale800 from 0 to 100 F.° and examples of themes images that may bedisplayed on the mobile device 10 in response to measured ambienttemperature. This example illustrates that when the temperature sensor38 detects a cold ambient temperature, such as below 45 F.°, the systemsoftware 202 may select a theme image relating to cold weather to bedisplayed on the mobile device 10. For example, at temperatures below 45F.° the display 18 may show a snowman and the keys 402 on the keypad 20may show snowing clouds. In contrast, for example, when the temperatureexceed 71 F.° the display 18 may present an image of the sun and amercury thermometer indicating high temperatures while the keys 402 ofthe keypad 20 may display a bright yellow glow (not shown) to suggestbright sunshine.

Alternatively, users may set the themes to be displayed on their mobiledevice 10 to suggest feelings opposite to those of the ambienttemperatures. For example, the cold weather images may be presented whenthe measured temperature is high and warm weather images may bepresented when the measured temperature is cold. Another example isillustrated in FIG. 10 which illustrates that when the ambienttemperature is below 70 F.° the processor may select an image of afireplace to present on the display 18 and flames on the keys 402 of thekeypad 20 to suggest a warm feeling to the user. Similarly, when thetemperature is above 71 F.°, the processor 12 may select and apply a skitheme to show an image of a pair of skis on the display 18 and brightWhite Glow (not shown) on the keys 402 of the keypad 20 to suggest coolfeelings to the user.

Other types of sensors 200 may also be used individually or incombination with other sensors 200 to affect the theme selection in amobile device 10. For example, data collected by a breath alcohol sensor44 may be used by the system software 202 to determine whether the useris under the influence of an alcoholic beverage and apply a theme thatenlarges the font size of the numbers on the display 18 and the keys 402of the keypad 20 (not shown). As another example, data from a GPSreceiver 43 may be used in combination with data from a temperaturesensor 38 to select the theme of the mobile device 10. For example, ifthe GPS data indicates that the user is by a beach (such as determinedby comparing GPS coordinates to a global map stored in memory) and thetemperature sensor 38 measures a warm ambient temperature, the processor12 may change the theme to show an ocean view on the display 18 andwaves on the keys 402 of the keypad 20.

In an embodiment, the data collected by sensors 200 may also be used tocustomize advertisements transmitted to the mobile device 10. Asillustrated in FIG. 11, the sensor 200 data may be collected by sensorson a mobile device 10 and transmitted via the Internet 602 to aadvertisement server 601 configured by software to create and transmitadvertisements based on received sensor 200 data. An advertisementrequesting application may be implemented on the processor 12 toformulate messages transmitted to and received from the advertisementserver 601, as well as processing such messages to extractadvertisements for display as mobile device themes. As shown in FIG. 11,the mobile device 10 communicates the sensor 200 data to a wirelessaccess point 604 using well known wireless data network protocols andtechnology (e.g., cellular or WiFi data network technology). The data isthen sent to a network 602, such as the Internet which conveys the datato the server 600. The server 600 may also be connected to a localmerchant, advertiser or coupon owner server 603, via the Internet 602 oroptionally via a direct network connection (shown by a dashed arrow) forreceiving targeted advertising information or coupons. The advertisementserver 601 receives and processes the received sensor 200 data. Usingthe sensor data, the advertisement server 601 may select and/orcustomize an advertisement related to or triggered by the sensor data.Alternatively, the server 600 may provide some or all of the sensor datawithin query to a merchant, advertiser or coupon owner server 603inquiring whether any advertisement or coupon should be transmitted tothe mobile device 10. Once a targeted advertisement is configured, theserver 600 transmits that advertisement to the mobile device 10 via thesame communication path, i.e. the network 602 and the wireless accesspoint 604. The advertisement will then be shown on the mobile device 10.It should be noted that the theme data base server 600 illustrated inFIG. 6 may also function as the advertisement server 601 illustrated inFIG. 11.

The system architecture illustrated in FIG. 11 enables a new businessentity in the form of a centralized advertising service provideroperating an advertisement server 601. Using telecommunication networks,mobile devices 10 may be located anywhere when they report their sensordata to the server 601. Thus, operating the server 601 as a centralizedservice makes business and network sense. However, advertisements,particular coupon based advertisements, are likely to be regionally orlocally focused. For example, restaurant operators in Vale, Colo. willnot be interested in offering a coupon for free hot chocolate to mobiledevice users outside of Colorado. To enable the personalized advertisingto be locally focused without requiring the advertisement server 601 tomaintain a nation-wide database of advertisements, the advertisementserver 601 can communicate with a merchant, advertiser or coupon ownerserver 603 that is located in the vicinity of the mobile device 10.

Information regarding the location of the mobile device 10 may becommunicated to the advertisement server 601 either as sensor data(e.g., GPS location information) or as information provided by thecellular network operator along with the sensor data transmission. Usingthis location information, the advertisement server 601 can determine(e.g., by using a look up table) the local merchant, advertiser orcoupon owner server 603 or servers which may have targeted advertisingto communicate. Such local merchant, advertiser or coupon owner server603 may be businesses which contract with the advertisement server 601owner to deliver localized and targeted advertising. The communicationto the merchant, advertiser or coupon owner server 603 may include thesensor data, a summary of the sensor data (e.g., temperature is cold),or just the sensor data of interest to the merchant, advertiser orcoupon owner server 603. Using that information, the local merchant,advertiser or coupon owner server 603 may generate an advertisement orcoupon and relay that information to the advertisement server 601 fordelivery to the mobile device 10. In an alternative embodiment, theadvertisement server 601 may redirect the data connection with themobile device 10 so that the advertisement information is communicateddirectly from the local merchant, advertiser or coupon owner server 603to the mobile device, with the advertisement server 601 serving the roleof a dispatcher or communication switch.

Sensor 200 data sent to the advertisement server 601 may includepersonalized data about the user and specifications of the mobile device10, or a device identifier (as illustrated in FIG. 7) sufficient toenable the advertisement server 601 to look up the technicalspecifications of the request mobile device. The personalized data mayinclude browsing history, name, age, address, transmitting cellularcite, etc. Such personalized data may be used by the advertisementserver 601 to select an appropriate advertisement for the user of themobile device 10. The specification data (either transmitted oravailable for look up using a device ID) may include the mobile device10 model, display 18 dimensions, keypad 20 capabilities, softwarecapabilities, etc. The mobile device 10 specification data may be usedby the server 600 to transmit advertisements that can be viewed on themobile device 10. For example, if the mobile device 10 is capable ofprocessing motion pictures, the server 600 may transmit a video clipadvertisement to the mobile device 10. Alternatively, if the mobiledevice 10 is only capable of receiving and showing text advertisements,then the server 600 may transmit the advertisement in text format.

In an exemplary embodiment illustrated in FIG. 12, data from atemperature sensor 38 may be sent to the advertisement server 601 for.When the data from the temperature sensor 38, user preferences andmobile device 10 specification are received, the advertisement server601 may select, customize and transmit an advertisement to the mobiledevice 10. If the advertisement server 601 is connected (e.g., bynetwork and contract agreements) to a local merchant server 603, theadvertisement server 601 may provide some of the information, such asthe temperature data or just the fact that a mobile device in thevicinity of the local merchant has reported a temperature within anadvertisement criteria set by the merchant. In response, the merchantserver 603 may send at least a portion of an advertisement to theadvertisement server 601 for delivery to the mobile device 10. Theadvertisement server 601 may then use the advertisement informationreceived from the merchant server 603 in conjunction with the userpreference and mobile device specification information received from themobile device 10 to generate a customized or personalized advertisementfor transmission.

Customized or personalized advertisements may be transmitted from theadvertisement server 601 to the mobile device 10 using the same wirelessnetwork. The advertisement data may be in the form of simple text,complex graphics, images, animation or video clips depending on themobile device's processing capabilities. For example, as illustrated inFIG. 12, if the mobile device reports to the advertisement server 601that the measured temperature is below 70 F.°, the advertisement server601, optionally working in conjunction with a local merchant server 603,may send an advertisement concerning hot steaming coffee to entice theuser to purchase a coffee drink, such as from a local coffee house.Similarly, if the mobile device reports to the advertisement server 601that the measured temperature is above 71 F.°, the advertisement server601 may send an advertisement about cold beer, such as a location of anearby pub or bar using information provided by a local merchant server603.

Combining data from multiple sensors 200 may allow the advertisementserver 601 to provide more specific advertisements to users. Forexample, if the mobile device reports to the advertisement server 601that the measured temperature is above 70 F.°, the combination of thatinformation with GPS data also reported by the mobile device would allowthe advertisement server 601 to provide the user advertisement data fora cold beer at a vendor in the vicinity of the user's location. Mobiledevice location information may also be obtained from the wirelessnetwork, such as by using the location of the cellular or WiFi basestation through which the mobile device is connected. As anotherexample, if accelerometer data is also reported to the advertisementserver 601 along with temperature and GPS data, the advertisementgenerated by the advertisement server 601 may reflect calculations aboutthe time it will take the user to reach the advertised destination. Forexample, if the accelerometer data indicates the mobile device user ismost likely walking, the advertisement server 601 can expect that itwill take longer for the user to arrive at a particular location than ifthe accelerometer data indicates that the mobile device is in a movingautomobile.

In the various embodiments, theme that requires changing the layout orfunctionality of the keypad 20 may be implemented on configurable keypadtechnologies. An example of a configurable keypad technology isillustrated in FIGS. 13 and 14 in which each key has associated with ita small display allowing the key to be labeled dynamically. Such adisplay-key keypad 400 may include transparent keys 402 positionedwithin a framework 404 and supported by a support structure 406. Adisplay 408 beneath each transparent key 402 can be controlled by themobile device processor 12 to present a free-form image viewable throughthe key 402. A bottom structure 410 may provide support for the displays408 as well as electrical connections for coupling the displays to theprocessor 12.

A display-key keypad 400 can provide many advantages to mobile devices10 since individual key functions can be communicated to users by theimages presented on the keys 402 themselves. Thus, theme colors orimages, words, numbers or symbols or graphics can be displayed in thekey itself. In order to enable such a keypad to be easily implemented,applications can define the function associated with each key 402 aswell as provide graphics that are presented on each of the key displays408. This additional complexity along with the implementation of keypadthemes can be facilitated by a keypad protocol as described above.

Another form of mobile device keypad/user-interface is a touchscreen,such as illustrated in FIGS. 15 and 16. In such a mobile device 10, atouchscreen 410 provides a completely flexible keypad anduser-interface. Touchscreen displays provide great flexibility forcreating user-interfaces that are completely configurable. Without thebenefits of the keypad protocol (described above), this flexibility willimpose additional complexity on application software. The keypadprotocol can simplify the development display/keypad configurations fortouchscreens. Instead of having to configure specific touchscreens todisplay various themes within an application software, applicationdevelopers can provide descriptive configuration information and graphicfiles to the keypad protocol using standard formats and APIs, leavingthe complexity of displaying themes and interfacing with the variety oftouchscreen designs to the keypad protocol. In this manner, themeimplementation can be accomplished by system software without imposingadditional complexity requirements on application software.

A third form of keypad 20 that may be employed on future mobile devices10 is illustrated in FIG. 17. In this keypad configuration, smalldisplays 420 are positioned above, beside or beneath hard keys 402 sothat key function definitions can be presented on the small displays.The small displays 420 may be liquid crystal displays similar to themain mobile device display 18. An example of such a keypad display isdisclosed in U.S. Pat. No. 6,703,963, the entire contents of which arehereby incorporated by reference. The small displays 420 are coupled tothe mobile device processor 12 so that the displays 420 can becontrolled via system software 202. This keypad design is highlyflexible since it enables keys to be dynamically assigned with the keyfunction communicated to users in the form of graphics or alphanumericcharacters. As with other display concepts, the presentation of selectedthemes can be implemented in system software such as by a keypadprotocol as described above.

As a further example embodiment illustrated in FIG. 18, the mobiledevice 10 may be configured to adjust the mobile device backlight 1202,such as display 18 and keypad 20 backlights, based on data received froman ambient light sensor 36. Adjusting the mobile device backlight 1202allows the mobile device to conserve energy to extend battery life whileensuring the display and keypads are viewable within the ambient lightconditions. As shown in FIG. 18, data collected by a light sensor 36 maybe sent to the system software 202 where the data can be used to selecta theme or adjust the mobile device backlight 1202.

FIG. 19 illustrates a process flow diagram of example steps that may beimplemented in adjusting the mobile device backlight 1202 based on datareceived from an ambient light sensor 36. When the mobile device 10 isturned on, step 400, the processor 12 configured by system software 202receives data collected by the ambient light sensor 36, step 402. Theprocessor 12 may also access data regarding the intensity setting of themobile device backlight 1202, step 1300. By comparing the measuredambient light to the backlight intensity setting, test 1302, theprocessor can determine whether an adjustment should be made to thebacklight intensity setting to conserve energy. If the ambient lightsensor 36 measures bright ambient light (i.e., test 1302=“Yes”), theprocessor may be configured to increase the intensity of the mobiledevice backlight 1202, step 1304. Alternatively, if the ambient lightsensor 36 records low intensity ambient light (i.e., test 1302=“No”),the processor may decrease the intensity setting of the mobile devicebacklight 1202, step 1306. The processor may also not make anyadjustment to the backlight intensity. With the backlight intensityadjusted, the processor may return to receiving sensor data, returningto step 402. Using this embodiment, the brighter the ambient light, thebrighter the mobile device backlight 1202, while the dimmer the ambientlight, the dimmer the mobile device backlight 1202. Such automaticadjustments in the mobile device backlight 1202 allow users to be ableto easily view the display 18 while enjoying longer battery life.

Another embodiment may be implemented using example method stepsillustrated in FIG. 19 in order to enable a mobile device to adjust ringtone volumes or audio themes in response to ambient noise. In thisembodiment, an ambient noise sensor can use an ambient noise sensor 34(e.g., a microphone) to report to the processor a measure of ambientnoise when the processor receives sensor data, step 402. The processormay then access the ring tone volume setting and/or the audio themecurrently activated on the mobile device, step 1350. The processor maythen compare the measured ambient noise level to a maximum thresholdvalue, test 1352. If the ambient noise exceeds a maximum thresholdcorresponding to the present ring tone volume setting and/or the audiotheme, this indicates that the environment may be too loud for thosesettings such that a user may not hear a ring or other audio alarm. Inthat event (i.e., test 1352=“Yes”), the processor may increase the ringtone volume setting or select a louder audio theme from themes stored inmemory that more appropriately matches the ambient noise level, step1354. With the volume or audio theme adjusted, the processor may returnto receiving sensor data, returning to step 402. However, if the ambientnoise sensor 34 records ambient noise below the maximum threshold (i.e.,test 1352=“No”), the processor may test whether the ambient noise isless than a minimum threshold value, test 1356. If the ambient noise isless that the minimum threshold corresponding to the present ring tonevolume setting and/or the audio theme, this indicates that theenvironment may be too quiet for those settings such that a ring orother audio alarm would be inappropriately too loud. In that event(i.e., test 1356=“Yes”), the processor may decrease the ring tone volumesetting or select a quieter audio theme from themes stored in memorythat more appropriately matches the ambient noise level, step 1358. Withthe volume or audio theme adjusted, the processor may return toreceiving sensor data, returning to step 402. If the measured ambientnoise level falls between the minimum and maximum threshold values(i.e., tests 1352 and 1356 both=“No”), the processor need not adjust thevolume or change the audio theme so processing can return to receivingsensor data, returning to step 402. This embodiment allows the mobiledevice to adjust the volume and type of audio themes consistent with theambient noise environment.

The embodiments described above involving servers may be implemented onany of a variety of commercially available server systems such asillustrated in FIG. 21. Such a server 900 typically includes a processor901 coupled to volatile memory 902 and a large capacity nonvolatilememory, such as a disk drive 903. The processor 901 is coupled to one ormore network interface circuits, such as high speed modems 904 coupledto a network 905 such as the Internet. The server 900 may also include aportable media reader, such as a compact disc (CD) drive 906 coupled tothe processor 901.

The various embodiments may be implemented by the processor 12 executingsoftware instructions configured to implement one or more of thedescribed methods. Such software instructions may be stored in memory 14as the device's operating system software, a series of APIs implementedby the operating system, or as compiled software implementing anembodiment method. Further, the software instructions may be stored onany form of tangible processor-readable memory, including: a randomaccess memory 14, a memory module plugged into the mobile device 10,such as an SD memory chip, an external memory chip such as aUSB-connectable external memory (e.g., a “flash drive”), read onlymemory (such as an EEPROM); hard disc memory, a floppy disc, and/or acompact disc.

Those of skill in the art would appreciate that the various illustrativelogical blocks, modules, circuits, and algorithm steps described inconnection with the embodiments disclosed herein may be implemented aselectronic hardware, computer software, or combinations of both. Toclearly illustrate this interchangeability of hardware and software,various illustrative components, blocks, modules, circuits, and stepshave been described above generally in terms of their functionality.Whether such functionality is implemented as hardware or softwaredepends upon the particular application and design constraints imposedon the overall system. Skilled artisans may implement the describedfunctionality in varying ways for each particular application, but suchimplementation decisions should not be interpreted as causing adeparture from the scope of the present invention.

The steps of a method or algorithm described in connection with theembodiments disclosed herein may be embodied directly in hardware, in asoftware module executed by a processor, or in a combination of the two.A software module may reside in processor readable memory which may beany of RAM memory, flash memory, ROM memory, EPROM memory, EEPROMmemory, registers, hard disk, a removable disk, a CD-ROM, or any otherform of storage medium known in the art. An exemplary storage medium iscoupled to a processor such that the processor can read informationfrom, and write information to, the storage medium. In the alternative,the storage medium may be integral to the processor. The processor andthe storage medium may reside in an ASIC. The ASIC may reside in a userterminal or mobile device. In the alternative, the processor and thestorage medium may reside as discrete components in a user terminal ormobile device. Additionally, in some aspects, the steps and/or actionsof a method or algorithm may reside as one or any combination or set ofcodes and/or instructions on a machine readable medium and/or computerreadable medium, which may be incorporated into a computer programproduct.

The foregoing description of the various embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thespirit or scope of the invention. Thus, the present invention is notintended to be limited to the embodiments shown herein, and instead theclaims should be accorded the widest scope consistent with theprinciples and novel features disclosed herein.

1. A method for selecting a theme implemented on a computing device,comprising: receiving data collected by a sensor; selecting a themebased on the data collected by the sensor, wherein the theme is storedin a theme file comprising a theme element for changing a display of thecomputing device and a theme element for changing a keypad of thecomputing device; and applying the selected theme to the computingdevice to change the computing device display and the computing devicekeypad.
 2. The method of claim 1, wherein the sensor is a temperaturesensor.
 3. The method of claim 2, wherein the step of applying theselected theme to the computing device comprises adjusting a color of abacklight.
 4. The method of claim 1, wherein the theme file of theselected theme is stored on the computing device.
 5. The method of claim1, wherein the theme file of the selected theme is stored on a server.6. The method of claim 5, further comprising: sending a request for thetheme file of the selected theme to the server via a network; andreceiving the requested theme file of the selected theme from the servervia the network.
 7. The method of claim 6, further comprising includinginformation regarding the computing device in the request for the themefile of the selected theme.
 8. The method of claim 1, wherein the stepof selecting a theme based on the data collected by the sensor comprisesselecting one of a plurality of themes using a theme list stored inmemory of the computing device.
 9. The method of claim 8, wherein thetheme list includes theme criteria associated with each of the pluralityof themes, and wherein the step of selecting a theme based on the datacollected by the sensor further comprises comparing the data collectedby the sensor to the theme criteria and selecting one of the pluralityof themes for which the theme criteria is satisfied.
 10. The method ofclaim 1, wherein the computing device includes a configurable keypad andthe step of applying the selected theme to the computing device tochange the computing device keypad includes applying the selected themeto the configurable keypad.
 11. The method of claim 10, wherein the stepof applying the selected theme to the configurable keypad isaccomplished using a keypad protocol.
 12. The method of claim 10,wherein the configurable keypad is a display-key keypad.
 13. The methodof claim 10, wherein the configurable keypad is a touchscreen keypad.14. The method of claim 10, wherein the configurable keypad includes keydisplays positioned adjacent to the keys.
 15. A method for presentingadvertisements on a mobile computing device, comprising: receiving datacollected by a sensor on the mobile computing device, wherein the sensorcomprises at least one sensor selected from the group consisting of atemperature sensor, a vibration sensor, a noise sensor, a breath alcoholsensor, an accelerometer, and an ambient light sensor; the mobilecomputing device sending the data collected by the sensor along with arequest for an advertisement to an advertisement server; the mobilecomputing device receiving an advertisement relating to the datacollected by the sensor; and displaying the advertisement on thecomputing device.
 16. The method of claim 15, wherein the sensor furthercomprises a second sensor selected from the group consisting of alocation sensor, and a Global Positioning System receiver.
 17. A methodfor providing advertisements to a mobile computing device, comprising:receiving from the mobile computing device a request for anadvertisement including sensor data collected by a sensor coupled to themobile computing device, wherein the sensor comprises at least onesensor selected from the group consisting of a temperature sensor, avibration sensor, a noise sensor, a breath alcohol sensor, anaccelerometer, and an ambient light sensor; generating an advertisementbased on the sensor data; and sending the generated advertisement to themobile computing device.
 18. The method of claim 17, wherein the step ofgenerating an advertisement based on the sensor data further comprises:receiving information regarding the position of the mobile computingdevice; requesting advertisement information from a server regardingadvertisers located in the vicinity of the mobile computing device;receiving advertisement information from the server; and generating acustomized advertisement using the received advertisement information.19. The method of claim 18, wherein the step of advertisementinformation further comprises forwarding the received sensor data to theserver.
 20. A computing device, comprising: a processor; a sensorcoupled to the processor a display coupled to the processor; a keypadcoupled to the processor; and a memory coupled to the processor, whereinthe processor is configured with software instructions to perform stepscomprising: receiving data collected by the sensor; selecting a themebased on the data collected by the sensor, wherein the theme is storedin a theme file comprising a theme element for changing a display of thecomputing device and a theme element for changing a keypad of thecomputing device; and applying the selected theme to the computingdevice display to change the display and the keypad.
 21. The computingdevice of claim 20, wherein the sensor is a temperature sensor.
 22. Thecomputing device of claim 21, further comprising a backlight, wherein:the processor is configured with software instructions to performfurther steps comprising adjusting a color of a backlight based on datacollected by the temperature sensor.
 23. The computing device of claim20, wherein the theme file of the selected theme is stored in thememory.
 24. The computing device of claim 20, further comprising anetwork interface circuit coupled to the processor, wherein theprocessor is configured with software instructions to perform stepsfurther comprising: sending a request for the theme file of the selectedtheme to a server via the network interface circuit; and receiving therequested theme file of the selected theme from the server via thenetwork interface circuit.
 25. The computing device of claim 24, whereinthe network interface circuit comprises a wireless transceiverconfigured to transmit and receive data via a wireless data network. 26.The computing device of claim 20, wherein: the memory has stored thereina theme list identifying a plurality of themes and including themecriteria associated with each of the plurality of themes; and theprocessor is configured with software instructions to perform the stepof selecting a theme by performing steps comprising comparing the datacollected by the sensor to the theme criteria and selecting one of theplurality of themes for which the theme criteria is satisfied.
 27. Thecomputing device of claim 20, wherein the keypad is a configurablekeypad and the processor is configured with software instructions suchthat applying the selected theme to the computing device to change thekeypad comprises applying the selected theme to the configurable keypad.28. The computing device of claim 27, wherein the software configuringthe processor includes a keypad protocol.
 29. The computing device ofclaim 27, wherein the keypad is a display-key keypad.
 30. The computingdevice of claim 27, wherein the keypad is a touchscreen keypad.
 31. Thecomputing device of claim 27, wherein the keypad includes key displayspositioned adjacent to the keys.
 32. A mobile computing devicecomprising: a processor; a display coupled to the processor; a sensorcoupled to the processor, wherein the sensor comprises at least onesensor selected from the group consisting of a temperature sensor, avibration sensor, a noise sensor, a breath alcohol sensor, anaccelerometer, and an ambient light sensor; a network interface circuitcoupled to the processor; and a memory coupled to the processor, whereinthe processor is configured with software instructions to perform stepscomprising: receiving data collected by the sensor; sending the datacollected by the sensor along with a request for an advertisement to anadvertisement server via the network interface circuit; receiving anadvertisement relating to the data collected by the sensor from theserver via the network interface circuit; and displaying theadvertisement data on the display.
 33. The computing device of claim 32,wherein the sensor further comprises a second sensor selected from thegroup consisting of a location sensor, and a Global Positioning Systemreceiver.
 34. The computing device of claim 32, wherein the networkinterface circuit comprises a wireless transceiver configured totransmit and receive data via a wireless data network.
 35. A serverconfigured to customize and distribute advertisements to a mobilecomputing device via a network, comprising: a server memory; a serverprocessor coupled to the server memory; and a network connection coupledto the server processor, wherein the server processor is configured withsoftware instructions to perform steps comprising: receiving from themobile computing device via the network connection a request for anadvertisement including data collected by a sensor coupled to the mobilecomputing device, wherein the sensor comprises at least one sensorselected from the group consisting of a temperature sensor, a vibrationsensor, a noise sensor, a breath alcohol sensor, an accelerometer, andan ambient light sensor; generating an advertisement based on the sensordata; and sending the generated advertisement to the mobile computingdevice via the network interface.
 36. The server of claim 35, whereinthe processor is configured with software instructions to performfurther steps comprising: requesting advertisement information from amerchant server regarding advertisers located in the vicinity of themobile computing device; receiving advertisement information from themerchant server; and generating the advertisement using the receivedadvertisement information.
 37. A non-transitory storage medium havingstored thereon processor-executable software instructions configured tocause a processor of a computing device to perform steps comprising:receiving data collected by a sensor; selecting a theme based on thedata collected by the sensor, wherein the theme is stored in a themefile comprising a theme element for changing a display of the computingdevice and a theme element for changing a keypad of the computingdevice; and applying the selected theme to the computing device tochange the computing device display and the computing device keypad. 38.The non-transitory storage medium of claim 37, wherein the tangiblestorage medium has stored thereon processor-executable softwareinstructions configured to cause a processor of a computing device toreceive data collected by a temperature sensor.
 39. The non-transitorystorage medium of claim 38, wherein the tangible storage medium hasstored thereon processor-executable software instructions configured tocause a processor of a computing device performing steps furthercomprising: adjusting a color of a backlight based on data collected bythe temperature sensor.
 40. The non-transitory storage medium of claim37, wherein the tangible storage medium has stored thereonprocessor-executable software instructions configured to cause aprocessor of a computing device to select a theme with a theme filestored on the computing device.
 41. The non-transitory storage medium ofclaim 37, wherein the tangible storage medium has stored thereonprocessor-executable software instructions configured to cause aprocessor of a computing device to perform further steps comprising:sending a request for the theme file of the selected theme to a servervia a network interface circuit; and receiving the requested theme fileof the selected theme from the server via the network interface circuit.42. The non-transitory storage medium of claim 41, wherein the tangiblestorage medium has stored thereon processor-executable softwareinstructions configured to cause a processor of a computing device toperform further steps comprising communicating with the server via awireless data network.
 43. The non-transitory storage medium of claim37, wherein the tangible storage medium has stored thereonprocessor-executable software instructions configured to cause aprocessor of a computing device to select a theme by performing stepscomprising: comparing the data collected by the sensor to theme criteriaincluded in a theme list stored in memory, the theme list identifying aplurality of themes; and selecting one of the plurality of themes forwhich the theme criteria is satisfied.
 44. The non-transitory storagemedium of claim 37, wherein the wherein the tangible storage medium hasstored thereon processor-executable software instructions configured tocause a processor of a computing device performing steps such thatapplying the selected theme to the computing device to change the keypadcomprises applying the selected theme to a configurable keypad.
 45. Thenon-transitory storage medium of claim 44, wherein the tangible storagemedium has stored thereon processor-executable software instructionsconfigured to cause a processor of a computing device performing stepsfurther comprising applying the selected theme to the configurablekeypad using a keypad protocol.
 46. The non-transitory storage medium ofclaim 37, wherein the tangible storage medium has stored thereonprocessor-executable software instructions configured to cause aprocessor of a computing device performing steps further comprisingapplying the selected theme to a display-key keypad.
 47. Thenon-transitory storage medium of claim 37, wherein the tangible storagemedium has stored thereon processor-executable software instructionsconfigured to cause a processor of a computing device performing stepsfurther comprising applying the selected theme to a touchscreen keypad.48. The non-transitory storage medium of claim 37, wherein the tangiblestorage medium has stored thereon processor-executable softwareinstructions configured to cause a processor of a computing deviceperforming steps further comprising applying the selected theme to keydisplays positioned adjacent to keys of a keypad.
 49. A non-transitorystorage medium having stored thereon processor-executable softwareinstructions configured to cause a processor of a mobile computingdevice to perform steps comprising: receiving data collected by a sensoron the mobile computing device, wherein the sensor comprises at leastone sensor selected from the group consisting of a temperature sensor, avibration sensor, a noise sensor, a breath alcohol sensor, anaccelerometer, and an ambient light sensor; sending the data collectedby a sensor along with a request for an advertisement to anadvertisement server via a network interface circuit; receiving anadvertisement relating to the data collected by the sensor from theserver via the network interface circuit; and displaying theadvertisement on a display of the mobile computing device.
 50. Thenon-transitory storage medium of claim 49, wherein the tangible storagemedium has stored thereon processor-executable software instructionsconfigured to cause a processor of the mobile computing device tofurther receive data from another sensor selected from the groupconsisting of a location sensor, and a Global Positioning Systemreceiver.
 51. The non-transitory storage medium of claim 49, wherein thetangible storage medium has stored thereon processor-executable softwareinstructions configured to cause a processor of the mobile computingdevice to communicate with the server via a wireless data network.
 52. Anon-transitory storage medium having stored thereon processor-executablesoftware instructions configured to cause a server processor to performsteps comprising: receiving from a mobile computing device via a networkconnection a request for an advertisement including data collected by asensor coupled to the mobile computing device, wherein the sensorcomprises at least one sensor selected from the group consisting of atemperature sensor, a vibration sensor, a noise sensor, a breath alcoholsensor, an accelerometer, and an ambient light sensor; generating anadvertisement based on the sensor data; and sending the generatedadvertisement to the mobile computing device via the network interface.53. The non-transitory storage medium of claim 52, wherein the tangiblestorage medium having stored thereon processor-executable softwareinstructions configured to cause a server processor to perform furthersteps comprising: requesting advertisement information from a merchantserver regarding advertisers located in the vicinity of the mobilecomputing device; receiving advertisement information from the merchantserver; and generating the advertisement using the receivedadvertisement information.
 54. A computing device comprising: a display;a keypad; means for sensing an ambient condition and generatingcorresponding sensor data; means for selecting a theme based on thesensor data, wherein the theme is stored in a theme file comprising atheme element for changing a display of the computing device and a themeelement for changing a keypad of the computing device; and means fordisplaying the selected theme on the computing device to change thedisplay and the keypad.
 55. The computing device of claim 54, whereinthe means for sensing an ambient condition comprises means for sensingan ambient temperature.
 56. The computing device of claim 55, furthercomprising: means for providing backlighting on the computing device;and means for adjusting a color of the means for providing backlightingon the computing device in response to the temperature sensor data. 57.The computing device of claim 54, further comprising: means forrequesting a theme file of the selected theme from a server via anetwork; and means for receiving the requested theme file of theselected theme.
 58. The computing device of claim 54, furthercomprising: means for comparing the data collected by the sensor totheme criteria within a theme list identifying a plurality of themes;and selecting one of the plurality of themes for which the themecriteria is satisfied.
 59. The computing device of claim 54, furthercomprising means for displaying the selected theme on a keypad.
 60. Amobile computing device comprising: means for sensing an ambientcondition and generating corresponding sensor data, wherein the ambientcondition comprises at least one ambient condition selected from thegroup consisting of temperature, vibration, noise, breath alcohol,acceleration, and ambient light; means for sending the sensor data alongwith a request for an advertisement to a server; means for receiving anadvertisement from the server; and means for displaying theadvertisement on the mobile computing device.
 61. A server configured tocustomize and distribute advertisements to a mobile computing device,comprising: means for receiving a request for an advertisement includingdata collected by a sensor coupled to the mobile computing device,wherein the sensor comprises at least one sensor selected from the groupconsisting of a temperature sensor, a vibration sensor, a noise sensor,a breath alcohol sensor, an accelerometer, and an ambient light sensor;means for generating an advertisement based on the sensor data; andmeans for sending the generated advertisement to the mobile computingdevice.
 62. The server of claim 61, further comprising: requestingadvertisement information from a merchant server regarding advertiserslocated in the vicinity of the mobile computing device; receivingadvertisement information from the merchant server; and generating theadvertisement using the received advertisement information.